package com.pi.nbcenter.device.service.provider;

import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;

public interface IcCardService {
  /**
   * @description 
   * @param deviceId 设备编号
   * @param userId 用户编号
   * @param icCard id卡号
   * @return 存入之后的设备id
   */
  public void addIcCardRemote(
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_DEVICE_ID_EMPTY") String imei, 
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_USER_NOT_EMPTY") Long userId, 
      @Length(max=20, message = "HUAWEI_DEVICE.IC_CARD_OVER_MAX") String icCard, 
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_SOURCE_EMPTY") Long sourceId)
      throws Exception;
  /**
   * @description 本地录入ic发起
   * @param deviceId 设备编号
   * @param userId 用户编号
   * @return 存入之后的设备id
   */
  public void localIcCardRecordRise(
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_DEVICE_ID_EMPTY") String imei, 
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_USER_NOT_EMPTY") Long userId, 
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_SOURCE_EMPTY") Long sourceId)
      throws Exception;
  /**
   * @description 删除用户绑定的单个ic卡
   * @param deviceId 设备编号
   * @param userId 用户编号
   * @param icCard id平台编号
   */
  public void deleteUserIcCard(
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_DEVICE_ID_EMPTY") String imei, 
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_USER_NOT_EMPTY") Long userId, 
      @Length(max=20, message = "HUAWEI_DEVICE.IC_CARD_OVER_MAX") String icCard,
      @NotNull(message = "HUAWEI_DEVICE.IC_CARD_SOURCE_EMPTY") Long sourceId)
      throws Exception;
  
  /**
   * @description 清空某个用户的ic卡
   * @param deviceId 设备编号
   * @param userId 用户编号
   * @param icCard id平台编号
   */
  public void clearUserIcCard(String imei, Long userId, Long sourceId)
      throws Exception;
}
